#pragma once
#include <lua.hpp>
#include <iostream>
#include <type_traits>
#include <stdexcept>
#include <string>
#include <functional>
#include <memory>
#include <typeindex>
#include <tuple>
#include <vector>
#include "MetatableRegistry.hh"
#include "LuaRef.hh"
#include "ScopeGuard.hh"
#include "ExceptionHolder.hh"
#include "exception.hh"
#include "StackGuard.hh"
#include "ErrorHandler.hh"
#include "function.hh"
#include "primitives.hh"
#include "types.hh"
#include "stack.hh"
#include "BaseFunc.hh"
#include "utils.hh"
#include "ClassFunc.hh"
#include "Dtor.hh"
#include "Func.hh"
#include "Class.hh"
#include "Registry.hh"
#include "Selector.hh"
#include "Context.hh"
#include "function_impl.hh"
